# Gilardi, Fabrizio, "The Temporary Importance of Role Models for Women's Political Representation", American Journal of Political Science
# Code to replicate Table SI12 (Replication of Table 1, with unit fixed effects)
# gilardi@ipz.uzh.ch, 2014-06-24

# Set working directory
setwd("../Data/")

# Load packages
library(texreg)

# Load data
d <- read.csv("dataset-full.csv")


###################
# Estimate models #########################################
###################

out.1w.0 <- glm(n.women.cand ~ sl.autob.n.women.elected + n.women.elected.lagged + n.women.cand.previously.elected + n.men.cand.previously.elected + n.women.cand.lagged + n.people.elected + n.cand + referenda + wom.kr + log.dist.zh + log.pop + kr.svp + steuerfuss + as.factor(stadt.land) + as.factor(year), data=d, family="poisson")
out.1w <- glm(n.women.cand ~ sl.autob.n.women.elected + n.women.elected.lagged + n.women.cand.previously.elected + n.men.cand.previously.elected + n.women.cand.lagged + n.people.elected + n.cand + referenda + wom.kr + log.dist.zh + log.pop + kr.svp + steuerfuss + as.factor(stadt.land) + as.factor(year) + as.factor(bfsnr), data=d, family="poisson")
summary(out.1w)

out.2w.0 <- glm(n.women.cand ~ sl.autob.n.women.elected + n.women.elected.lagged + n.women.cand.previously.elected + n.men.cand.previously.elected + n.women.cand.lagged + n.people.elected + n.cand + referenda + wom.kr + log.dist.zh + log.pop +  kr.svp + steuerfuss + as.factor(stadt.land) + sl.autob.n.women.elected*as.factor(year), data=d, family="poisson")
out.2w <- glm(n.women.cand ~ sl.autob.n.women.elected + n.women.elected.lagged + n.women.cand.previously.elected + n.men.cand.previously.elected + n.women.cand.lagged + n.people.elected + n.cand + referenda + wom.kr + log.dist.zh + log.pop +  kr.svp + steuerfuss + as.factor(stadt.land) + sl.autob.n.women.elected*as.factor(year) + as.factor(bfsnr), data=d, family="poisson")
summary(out.2w)

out.3w.0 <- glm(n.women.cand ~ sl.autob.n.women.elected + n.women.elected.lagged + n.women.cand.previously.elected + n.men.cand.previously.elected + n.women.cand.lagged + n.people.elected + n.cand + referenda + wom.kr + log.dist.zh + log.pop +  kr.svp + steuerfuss + as.factor(stadt.land) + n.women.elected.lagged*as.factor(year), data=d, family="poisson")
out.3w <- glm(n.women.cand ~ sl.autob.n.women.elected + n.women.elected.lagged + n.women.cand.previously.elected + n.men.cand.previously.elected + n.women.cand.lagged + n.people.elected + n.cand + referenda + wom.kr + log.dist.zh + log.pop +  kr.svp + steuerfuss + as.factor(stadt.land) + n.women.elected.lagged*as.factor(year) + as.factor(bfsnr), data=d, family="poisson")
summary(out.3w)

out.4w.0 <- glm(n.women.cand ~ sl.autob.n.women.elected + n.women.elected.lagged + n.women.cand.previously.elected + n.men.cand.previously.elected + n.women.cand.lagged + n.people.elected + n.cand + referenda + wom.kr + log.dist.zh + log.pop +  kr.svp + steuerfuss + as.factor(stadt.land) + n.women.elected.lagged*as.factor(year) +  sl.autob.n.women.elected*as.factor(year), data=d, family="poisson")
out.4w <- glm(n.women.cand ~ sl.autob.n.women.elected + n.women.elected.lagged + n.women.cand.previously.elected + n.men.cand.previously.elected + n.women.cand.lagged + n.people.elected + n.cand + referenda + wom.kr + log.dist.zh + log.pop +  kr.svp + steuerfuss + as.factor(stadt.land) + n.women.elected.lagged*as.factor(year) + sl.autob.n.women.elected*as.factor(year) + as.factor(bfsnr), data=d, family="poisson")
summary(out.4w)



##############
# Make table ########################################
##############

# Some stuff to make the tible look right

l.1 <- length(coef(out.1w)[is.na(coef(out.1w))==F]) - length(coef(out.1w.0))
l.2 <- length(coef(out.2w)[is.na(coef(out.2w))==F]) - length(coef(out.2w.0))
l.3 <- length(coef(out.3w)[is.na(coef(out.3w))==F]) - length(coef(out.3w.0))
l.4 <- length(coef(out.4w)[is.na(coef(out.4w))==F]) - length(coef(out.4w.0))

ufe <- c()
for(i in 1:max(l.1, l.2, l.3, l.4)){
	ufe[i] <- paste("bfsnr.", i, sep="")
}

var.names <- c(
	"(Intercept)",
	"Spatial lag",
	"Nr. xfemale elected ($t-1$)",
	"Nr. xfemale incumbent cand. ($t-1$)",
	"Nr. xmale incumbent cand. ($t-1$)",
	"Nr. xfemale cand. ($t-1$)",
	"Nr. seats",
	"Total nr. candidates",
	"Referenda on gender equality",
	"Support for xfemale in cantonal elec.",
	"Distance from Zurich (log)",
	"Population (log)",
	"Support for conservative party",
	"Tax level",
	"Suburb",
	"Countryside",
	seq(1978, 2010, 4),
	ufe,
	"Spatial lag $xx$ 1978",
	"Spatial lag $xx$ 1982",
	"Spatial lag $xx$ 1986",
	"Spatial lag $xx$ 1990",
	"Spatial lag $xx$ 1994",
	"Spatial lag $xx$ 1998",
	"Spatial lag $xx$ 2002",
	"Spatial lag $xx$ 2006",
	"Spatial lag $xx$ 2010",
	"Nr. xfemale elected ($t-1$) $xx$ 1978",	
	"Nr. xfemale elected ($t-1$) $xx$ 1982",	
	"Nr. xfemale elected ($t-1$) $xx$ 1986",	
	"Nr. xfemale elected ($t-1$) $xx$ 1990",	
	"Nr. xfemale elected ($t-1$) $xx$ 1994",	
	"Nr. xfemale elected ($t-1$) $xx$ 1998",	
	"Nr. xfemale elected ($t-1$) $xx$ 2002",	
	"Nr. xfemale elected ($t-1$) $xx$ 2006",	
	"Nr. xfemale elected ($t-1$) $xx$ 2010"
)

model.names <- c("(1)", "(2)", "(3)", "(4)")

texreg(list(out.1w, out.2w, out.3w, out.4w), single.row=T, center=T, dcolumn=T, custom.coef.names=var.names, omit.coef="bfsnr", custom.model.names=model.names)


